package com.collection.api.sys;

import java.util.List;
import java.util.Map;

import org.springframework.data.repository.query.Param;

import com.collection.api.entity.sys.SysResource;
import com.collection.api.entity.sys.SysRole;
import com.collection.api.entity.sys.SysRoleResource;

public interface SysRoleService {
	
	 /**
	  * 功能描述:查找角色列表
	  * @param roleName 角色名
	  * @param userType 用户类型
	  * @param offset 第几页
	  * @param limit 每页条数
	  * @return
	  */
	 List<Map<String, Object>> findRoleList(String roleName, String userType,Integer offset, Integer limit);
	 /**
	  * 功能描述:统计角色数目
	  * @param roleName 角色名称
	  * @param userType 用户类型
	  * @return
	  */
	 int countRoleList(String roleName, String userType);
	 
	 /**
	  * 获取树形菜单
	  * @return
	  */
	 public List<SysResource> findAllResource();
	 
	 
     /**
      * 功能描述:查找所有资源并根据角色Id将已关联的资源 checked =1
      * 
      * @param roleId
      * @return 集合
      */
     public List<Map<String, Object>> findResourcesByRoleId(@Param("roleId") int roleId,
                                                           @Param("appId") Integer appId);
     

     void insertSelective(String name, String userType, Integer appId, List<String> resourceIds);
     
     void updateByPrimaryKeySelective(Integer roleId, String name, String userType, Integer appId,
			List<String> resourceIds);
	 
    /**
     * 功能描述:查找角色
     */
	 SysRole selectByPrimaryKey(Integer roleId);
	 
    /**
     * 功能描述:统计角色下的用户数目
     */
    int countUserByRoleId(int roleId);
    
    /**
     * 功能描述:删除角色对应的资源
     * 
     * @param roleId
     * @return
     */
    void delRoleByRoleId(@Param("roleId") int roleId);
    
    
    /**
     * 
     * 功能描述: 查询所有的角色
     * 
     * @return List<SysRole>
     * @version 1.0.0
     * @author Administrator
     */
    public List<SysRole> findRoleListAll();
}
